home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
tools
/
ivl
/
src
/
iocs_add.h
< prev
next >
Wrap
Text File
|
1999-03-20
|
2KB
|
97 lines
#if !defined(IOCS_ADD_H_HAS_INCLUDED)
#define IOCS_ADD_H_HAS_INCLUDED
/*
* 何となく必要な IOCS コール関数の追加提供ヘッダ
*
*謝辞: 大部分のコードは、"sys\iocs_i.h"(by project LIBC Group)から
* 持ってきて、ここで修正したものです。感謝。
*
* by dummy.x. from Nov.14,1998
*/
#if !defined(__cdecl_h__)
#include <cdecl.h>
#endif /* !defined(__cdecl_h__) */
#if !defined (__GNUC__) && !defined (__GNUG__)
#error You lose. This file can be compiled only by GNU-C compiler.
#endif
/* inline アセンブラ関数定義 */
/* ソフトキーボード消去
* 返値: 消去前の表示状態(=0:表示していなかった/=1:表示していた)
*/
static __inline int_ _iocs_skey_off(void_)
{
register unsigned int_ reg_d0 __asm ("d0");
__asm __volatile ("moveq.l #0,d1\n\t"
"moveq.l #__SKEY_MOD,%0\n\t"
"trap #15"
: "=d" (reg_d0)
: /* no inputs */
: "d1"
);
return reg_d0;
}
/* ソフトキーボード表示
* 引数: x,y - 表示座標(共に下位ワードのみ有効)
* 返値: 表示前の表示状態(=0:表示していなかった/=1:表示していた)
*/
static __inline int_ _iocs_skey_on(int_ x, int_ y)
{
register unsigned int_ reg_d0 __asm ("d0");
__asm __volatile ("move.l #1,d1\n\t"
"move.w %2,d2\n\t"
"swap.w d2\n\t"
"move.w %3,d2\n\t"
"moveq.l #__SKEY_MOD,%0\n\t"
"trap #15"
: "=d" (reg_d0)
: "ri" ((short) x), "ri" ((short) y)
: "d1", "d2"
);
return reg_d0;
}
/* ソフトキーボードの表示状態を調べる
* 返値: 現在の表示状態(=0:表示している/=1:いない)
*/
static __inline int_ _iocs_skey_chk(void_)
{
register unsigned int_ reg_d0 __asm ("d0");
__asm __volatile ("moveq.l #2,d1\n\t"
"moveq.l #__SKEY_MOD,%0\n\t"
"trap #15"
: "=d" (reg_d0)
: /* no inputs */
: "d1"
);
return reg_d0;
}
/* ソフトキーボードを自動制御(マウス右ボタンによる制御)に戻す
* 返値: 現在の表示状態(=0:表示している/=1:いない)
*/
static __inline int_ _iocs_skey_reset(void_)
{
register unsigned int_ reg_d0 __asm ("d0");
__asm __volatile ("moveq.l #-1,d1\n\t"
"moveq.l #__SKEY_MOD,%0\n\t"
"trap #15"
: "=d" (reg_d0)
: /* no inputs */
: "d1");
return reg_d0;
}
/* 関数偽名定義 */
#define _iocs_ms_curoff _iocs_ms_curof
#endif /* !defined(IOCS_ADD_H_HAS_INCLUDED) */